// 服务商常量定义

// 服务商枚举
export enum ProviderId {
  HUOJIN = 1,    // 火金科技
  TIANYUAN = 2    // 田园支付
}

// 服务商代码枚举
export enum ProviderCode {
  HUOJIN = 'HUOJIN',
  TIANYUAN = 'TIANYUAN'
}

// 服务商信息接口
export interface ProviderInfo {
  id: number
  code: string
  name: string
  description?: string
  status?: number
}

// 服务商映射表
export const PROVIDERS: Record<number, ProviderInfo> = {
  [ProviderId.HUOJIN]: {
    id: ProviderId.HUOJIN,
    code: ProviderCode.HUOJIN,
    name: '火金科技',
    description: '火金科技支付服务商',
    status: 1
  },
  [ProviderId.TIANYUAN]: {
    id: ProviderId.TIANYUAN,
    code: ProviderCode.TIANYUAN,
    name: '田园支付',
    description: '田园支付服务商',
    status: 1
  }
}

// 工具函数：根据服务商ID获取服务商名称
export const getProviderNameById = (providerId: number): string => {
  return PROVIDERS[providerId]?.name || `未知服务商(${providerId})`
}

// 工具函数：根据服务商ID获取服务商信息
export const getProviderInfoById = (providerId: number): ProviderInfo | null => {
  return PROVIDERS[providerId] || null
}

// 工具函数：根据服务商代码获取服务商信息
export const getProviderInfoByCode = (providerCode: string): ProviderInfo | null => {
  return Object.values(PROVIDERS).find(provider => provider.code === providerCode) || null
}

// 工具函数：获取所有服务商列表
export const getAllProviders = (): ProviderInfo[] => {
  return Object.values(PROVIDERS)
}

// 工具函数：检查服务商ID是否有效
export const isValidProviderId = (providerId: number): boolean => {
  return providerId in PROVIDERS
}